<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // var obj = {}
        // obj.name = 'zhangsan'
        // obj.age = 18

        function Person(name,age){
            this.name  = name;
            this.age  = age;
        }

        Person.prototype.eat = function(){
            console.log(`${this.name}正在吃饭`)
        }


        var obj1 = new Person('zhangsan',18);
        obj1.eat();
        //自己身上没有,于是到自己的__proto__属性上找,
        // 自己的__proto__ 指向所属构造函数的prototype上找 
        var obj2 = new Person('zhangsan1',28);
         //自己身上没有,于是到自己的__proto__属性上找,
        // 自己的__proto__ 指向所属构造函数的prototype上找 



        //js不是面相对象语言 js可以用面向对象的思想来写代码 
        // JQuery 就是典型的用js面向对象封装的一个产品  


        // class

        // class 类名{
            // 构造器(写属性的地方),

            // 原型上的方法

            // 原型上的方法
            
            // 原型上的方法

        // }



        class Persons{
            // 一个类只能有一个构造器  只要是属性写在里边 
            // 一个构造器里边可以写多个属性 
            constructor(name,age){
                this.name = name,
                this.age = age
            }
            // 原本是写在原型上的方法  在构造器后边依次写就可以了 
            eat(){
                console.log(`${this.name}正在吃${this.age}的生日饭`)
            }

            sing(){
                console.log(`${this.name}正在唱${this.age}的生日歌`)
            }
        }


        var obj3 = new Persons('张三',19);
        var obj4 = new Persons('张三1',29);
        var obj5 = new Persons('张三2',39);
        var obj6 = new Persons('张三3',49);

        console.log(obj3,obj4,obj5,obj6);

        


    </script>
</body>
</html>